package org.subject.dao;

import org.subject.dto.MessageAndUser;
import org.subject.dto.UserToMessage;
import org.subject.entity.Message;

import java.util.List;
import java.util.Map;

public interface MessageMapper {
    int deleteByPrimaryKey(Long messageId);

    int insert(Message record);

    int insertSelective(Message record);

    Message selectByPrimaryKey(Long messageId);

    int updateByPrimaryKeySelective(Message record);

    int updateByPrimaryKey(Message record);

    /**
     * 根据信息id查询详细信息，以及谁发布的信息
     */
    MessageAndUser selectMUByKey(Long messageId);

    /**
     * 查询竞赛信息列表
     *
     * @return
     */
    List<MessageAndUser> queryAll();

    /**
     * 根据查询条件查询文本列表，即发布的竞赛信息
     *
     * @return 返回 Message 集合
     */
    List<MessageAndUser> queryMessageList(Map<String, Object> parameter);

    /**
     * 查询竞赛数量
     *
     * @param parameter
     * @return
     */
    int queryMessageCount(Map<String, Object> parameter);

    /**
     * 根据发布者id查询文本列表，即发布的竞赛信息
     *
     * @return 返回 Message 集合
     */
    List<MessageAndUser> queryMessageByUId(Map<String, Object> parameter);

    /**
     * 查询竞赛数量
     *
     * @param parameter
     * @return
     */
    int queryCountByUId(Map<String, Object> parameter);

    /**
     * 根据用户的院系id查询竞赛信息
     *
     * @param parameter
     * @return
     */
    List<MessageAndUser> queryMessageByFId(Map<String, Object> parameter);

    /**
     * 根据用户的院系id查询竞赛数量
     *
     * @param parameter
     * @return
     */
    int queryCountByFId(Map<String, Object> parameter);
}